//封装购物车模块
import { defineStore } from "pinia";
import { c } from "vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf";
import { computed } from "vue";



//在里面可以定义action和state
export  const userCartStore=defineStore('cart',()=>{
//1.定义state - cartList
const cartList = ref([])
//2.定义action  -  addcart
const addcart = (goods)=>{
//添加购物车操作
//已添加过-数量+1
//未添加过-直接push
//思路：通过匹配传递过来的商品对象中的skuid能不能再cratlist里找到，找到就是添加过
const item= cartList.value.find((item)=>goods.skuId===item.skuId)
if(item){
  //找到了
  item.count++
}else{
  //没找到
  cartList.value.push(goods)
}



}


//删除购物车
const delCart = (skuId)=>{
//思路：1.找到要删除项的下标值 -splice 或者 使用数组的过滤方法-filter

//拿到下标值
const idx = cartList.value.findIndex((item)=>skuId===item.skuId

)
cartList.value.splice(idx,1)
}
//计算属性
//1.总的数量，所有项的count之和
const allCount= computed(()=>{cartList.value.reduce((a,c)=>a+c.count ,0)
})
//2.总价格，所有项的count*price之和
const allPrice = cartList.value.reduce((a,c)=>a+c.count*c.price,0)
return{
  delCart,
  cartList,
  addcart,
  allCount,
  allPrice

}

},
{
  persist:true

})
